Led polsat PWM.
Una eixida PWM és un GPIO de ESP32 on escrivim un valor que varia entre el 100% de 3V i el 0% de 3V que són 0V. Això és fa amb una funció Polsada que varia el valor entre 0 (0%) i 255 (100%) quan la resolució són 8 bits. Això és pot fer en qualsevol GPIO mentre no hagem ocupat tots els 16 canals dels quals disposem que tenen valors des de canal= 0 fins canal=15.
Mira la gràfica de Timothy Hirzel
Connecta un led al GPIO 19.
Ara obre Arduino IDE i escriu aquest programa per fer un pols PWM al GPIO 19
int pinLedPWM=19; //GPIO 19
int freq = 5000;
int canal = 0;
int resolucio = 8;
void setup() {
Serial.begin(115200);
ledcSetup(canal, freq, resolucio); // configurem la eixida analògica
ledcAttachPin(pinLedPWM,canal); // definim el canal que controlarà el led
}
void loop() {
Serial.println("Llancem un pols al pin amb el valor desitjat. ");
Serial.println("Valor màxim 255");
ledcWrite(canal, 255);// valor màxim
delay(1000);
Serial.println("Ara el pols amb valor 0 aturarà el led");
ledcWrite(canal, 0);//valor mínim
delay(1000);
}// final programa
El programa d'abans sols apaga o engega un led, no es nota el PWM. Anem a veure la versatilitat dels PWM, modificarem el programa per fer que el valor varie de forma continua.
int pinLedPWM=19; //GPIO 19
int freq = 5000;
int canal = 0;
int resolucio = 8;
void setup() {
Serial.begin(115200);
ledcSetup(canal, freq, resolucio); // configurem la eixida analogica
ledcAttachPin(pinLedPWM,canal); // definim el canal que controlara el led
}
void loop() {
Serial.println("Llancem un pols al pin amb el valor desitjat. ");
Serial.println("Incrementem el valor des de 0 fins 255 de i en 1");
for (int i = 0; i <= 255; i=i+1) {
ledcWrite(canal, i);
delay(10);
}
ledcWrite(canal, 0); // Fem que es note que hem arribat al maxim
delay(100); // apagant el led un instant
Serial.println("Decreixem el valor des de 255 fins 0 de i en 1");
for (int j = 255; j >=0; j=j-1) {
ledcWrite(canal, j);
delay(10);
}
}// final programa
No oblides prémer el botó boot al ESP32 i el mantens premut fins que comença a compilar-se
el programa 3 segons més tard de prémer el botó Puja/Transfereix a la targeta, podràs veure
el % de carrega del programa i al final veuràs un missatge al terminal d'Arduino
i el programa s'executarà.
Llicenciat sota la Llicència Creative Commons Reconeixement CompartirIgual 4.0